var arr = []
var arr1 = []
for (var i = 0; i < 2; i++) {
  arr[i] = function() {
    console.log(i);
  }
}
//当循环执行完毕之后 i 的值就变成2 了  而且  i 是var 全局变量 没被销毁 
arr[0](); //2
arr[1](); //2

for (let j = 0; j < 2; j++) {
  arr1[j] = function() {
    console.log(j);
  }
}
//每次循环中都会产生一个块级作用域，每个块级作用域中的变量都是不同的，函数执行时输出的是自己上一级（循环产生的块级作用域）作用域下的值
arr1[0](); //0
arr1[1](); //1